{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import os\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "data file: ../datasets/PEMS/PEMS08.npz\n"
     ]
    }
   ],
   "source": [
    "data_file = '../datasets/PEMS/PEMS08.npz'\n",
    "print('data file:',data_file)\n",
    "data = np.load(data_file,allow_pickle=True)\n",
    "data = data['data'][:,:,0]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('./financial/electricity.txt','r') as f:\n",
    "    data = np.loadtxt(f, delimiter=',')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_ratio = 6 / (6 + 2 + 2)\n",
    "valid_ratio = 2 / (6 + 2 + 2)\n",
    "test_ratio = 1 - train_ratio - valid_ratio\n",
    "train_data = data[:int(train_ratio * len(data))]\n",
    "valid_data = data[int(train_ratio * len(data)):int((train_ratio + valid_ratio) * len(data))]\n",
    "test_data = data[int((train_ratio + valid_ratio) * len(data)):]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([435., 424., 445., ..., 120., 102., 102.])"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_data[:,0]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.histplot(train_data.flatten(),stat='density',discrete=False,element='poly')\n",
    "sns.histplot(test_data.flatten(),color='orange',stat='density',discrete=False,alpha=0.4,element='poly')"
   ]
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "b3ba2566441a7c06988d0923437866b63cedc61552a5af99d1f4fb67d367b25f"
  },
  "kernelspec": {
   "display_name": "Python 3.8.8 64-bit ('base': conda)",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
